﻿namespace KWT.DRG_DIP.DO.Group.DRGGroup
{
    /// <summary>
    /// DRG 分组器基类
    /// </summary>
    public class DRGGroupBase
    {
        /// <summary>
        /// MDC 规则字典
        /// </summary>
        public List<Rule_MDC> ruleMDCs = new List<Rule_MDC>();

        /// <summary>
        /// ADRGs 规则字典
        /// </summary>
        public List<Rule_ADRG> ruleADRGs = new List<Rule_ADRG>();


        /// <summary>
        /// 疾病诊断相关分组  DRGs
        /// </summary>
        public List<Rule_DRG> rule_DRGs = new List<Rule_DRG>();

        /// <summary>
        /// 严重合并症或并发症（MCC）
        /// </summary>
        public List<Rule_MCC> rule_MCCs = new List<Rule_MCC>();

        /// <summary>
        /// 合并症或并发症（CC）
        /// </summary>
        public List<Rule_CC> rule_CCs = new List<Rule_CC>();

        /// <summary>
        /// 合并症或并发症排除列表
        /// </summary>
        public List<Rule_Exclude> rule_Excludes = new List<Rule_Exclude>();

        /// <summary>
        /// 不作为诊断
        /// </summary>
        public List<Rule_NotDiagnose> rule_notDiagnoses = new List<Rule_NotDiagnose>();

        /// <summary>
        /// 不作为手术
        /// </summary>
        public List<Rule_NotOperation> rule_NotOperations = new List<Rule_NotOperation>();


        /// <summary>
        /// 获得DRG分组
        /// </summary>
        /// <param name="inputPara"></param>
        /// <param name="MDC"></param>
        /// <returns></returns>
        public virtual DRGGroupResult GetDrg(DRGGroupInputPara inputPara)
        {
            return new DRGGroupResult();
        }

    }
}
